#include <iostream>
using namespace std;
/**
 * 
 */
int main() {
  // 1. 运算操作符号
  // 算术运算：+ - * / % ++ --
  // 赋值运算：= += -= *= /= %=
  // 比较运算：> < == != >= <= <=>
  // 逻辑运算：&& ｜｜ ！
  // 位运算：>> << ^ & | ~
  // 杂项运算：:: sizeof . & -> []

  // 2. 本章只介绍算术运算和赋值运算（其他运算涉及的时候继续学习）

  // 3. 算术运算
  // 加法
  // （1）两个操作数和一个操作符号
  // （2）操作数可以是变量也可以是字面量
  int a = 5, b = 3;
  cout << a + b << endl;
  cout << 5 + 3 << endl;
  cout << a + 3 << endl;

  // 减法
  // （1）两个操作数和一个操作符号
  // （2）操作数可以是变量也可以是字面量
  // （3）一个操作数和一个操作符号可以表示负号
  cout << a - b << endl;
  cout << -a << endl;
  cout << -(-a) << endl;

  // 乘法
  // （1）两个操作数和一个操作符号
  // （2）操作数可以是变量也可以是字面量
  cout << a * b << endl;

  // 除法
  // （1）两个操作数和一个操作符号
  // （2）操作数可以是变量也可以是字面量
  // （3）两个整数相除结果是截断整数(整除)
  // （4）除数不能取0
  cout << 11 / 3 << endl;
  // cout << 11 / 0 << endl;

  // 取余
  // （1）两个操作数和一个操作符号
  // （2）操作数可以是变量也可以是字面量
  // （3）两个整数相除结果是截断整数(整除)
  // （4）除数不能取0
  cout << 11 % 3 << endl;

  // 运算规则
  // （1）先乘除取余，后加减
  // （2）小括号优先级最高

  // 自增自减
  // （1）++前表示先a增加1，再给表达式赋值
  // （2）++后表示先给表达式赋值，再增加1
  a++;
  ++a;
  a--;
  --a;

  // 2. 赋值运算
  // 将右值赋值给左值
  // = += -= *= /= %= 
  // a += 5 => a = a + 5;

  return 0;
}